[INFO] cloning repository https://github.com/aymey/cram
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/aymey/cram" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faymey%2Fcram", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faymey%2Fcram'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c2c4e9e12c426930016d93262044389bb73fae53
[INFO] checking aymey/cram against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faymey%2Fcram" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/aymey/cram on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/aymey/cram
[INFO] finished tweaking git repo https://github.com/aymey/cram
[INFO] tweaked toml for git repo https://github.com/aymey/cram written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/aymey/cram already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[ERROR] this task or one of its parent failed!
[ERROR] no output for 300 seconds
[ERROR] note: run with `RUST_BACKTRACE=1` to display a backtrace.
[INFO] checking aymey/cram against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faymey%2Fcram" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/aymey/cram on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/aymey/cram
[INFO] finished tweaking git repo https://github.com/aymey/cram
[INFO] tweaked toml for git repo https://github.com/aymey/cram written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/aymey/cram already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking aymey/cram against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faymey%2Fcram" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/aymey/cram on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/aymey/cram
[INFO] finished tweaking git repo https://github.com/aymey/cram
[INFO] tweaked toml for git repo https://github.com/aymey/cram written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/aymey/cram already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ec8af16acec639eafd8f6d6cc4b29483333fc808cd5ec5ea232e93e01bd10a25
[INFO] running `Command { std: "docker" "start" "-a" "ec8af16acec639eafd8f6d6cc4b29483333fc808cd5ec5ea232e93e01bd10a25", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ec8af16acec639eafd8f6d6cc4b29483333fc808cd5ec5ea232e93e01bd10a25", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec8af16acec639eafd8f6d6cc4b29483333fc808cd5ec5ea232e93e01bd10a25", kill_on_drop: false }`
[INFO] [stdout] ec8af16acec639eafd8f6d6cc4b29483333fc808cd5ec5ea232e93e01bd10a25
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1760a96cad821ef8797a2e596a4a25bb8c9e1bc3321a5fe362237d72047edc93
[INFO] running `Command { std: "docker" "start" "-a" "1760a96cad821ef8797a2e596a4a25bb8c9e1bc3321a5fe362237d72047edc93", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.18
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]    Compiling rayon-core v1.12.0
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking either v1.9.0
[INFO] [stderr]     Checking weezl v0.1.7
[INFO] [stderr]     Checking half v2.2.1
[INFO] [stderr]     Checking miniz_oxide v0.7.1
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking fdeflate v0.3.3
[INFO] [stderr]     Checking smallvec v1.11.2
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]     Checking bytemuck v1.14.0
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking gif v0.12.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.17
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking png v0.17.10
[INFO] [stderr]     Checking crossbeam-deque v0.8.4
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]     Checking rayon v1.8.0
[INFO] [stderr]     Checking exr v1.71.0
[INFO] [stderr]     Checking jpeg-decoder v0.3.0
[INFO] [stderr]     Checking tiff v0.9.0
[INFO] [stderr]     Checking image v0.24.7
[INFO] [stderr]     Checking cram v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/processing/lexer.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 |         for y in 0..self.height as usize {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/processing/lexer.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |             for x in 0..self.width as isize {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/processing/lexer.rs:61:18
[INFO] [stdout]    |
[INFO] [stdout] 61 |         for y in 0..self.height as u32 {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/processing/lexer.rs:62:22
[INFO] [stdout]    |
[INFO] [stdout] 62 |             for x in 0..self.width as u32 {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |         for y in 0 .. tile.height as usize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:234:22
[INFO] [stdout]     |
[INFO] [stdout] 234 |             for x in 0 .. tile.width as usize {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:254:21
[INFO] [stdout]     |
[INFO] [stdout] 254 |         for tile in 0..16 {
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:255:22
[INFO] [stdout]     |
[INFO] [stdout] 255 |             for y in 0..64 {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:256:26
[INFO] [stdout]     |
[INFO] [stdout] 256 |                 for x in 0..64 {
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:292:47
[INFO] [stdout]     |
[INFO] [stdout] 292 |             let mut right: Vec<Rgb<u8>> = row[last..]
[INFO] [stdout]     |                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:297:34
[INFO] [stdout]     |
[INFO] [stdout] 297 |             let mut middle = row[first..last].to_vec();
[INFO] [stdout]     |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:423:36
[INFO] [stdout]     |
[INFO] [stdout] 423 |             width: pixels[begin.1][begin.0..]
[INFO] [stdout]     |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:431:44
[INFO] [stdout]     |
[INFO] [stdout] 431 |                 .collect::<Vec<Rgb<u8>>>()[begin.1..]
[INFO] [stdout]     |                                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:443:18
[INFO] [stdout]     |
[INFO] [stdout] 443 |         for i in begin..image.width() as usize * image.height() as usize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:481:18
[INFO] [stdout]     |
[INFO] [stdout] 481 |         for i in begin%image.width() as usize..image.width() as usize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:544:34
[INFO] [stdout]     |
[INFO] [stdout] 544 |                 'frame: for x in 0..frame.width as usize {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:549:30
[INFO] [stdout]     |
[INFO] [stdout] 549 |                     for y in 0..frame.height as usize {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:603:24
[INFO] [stdout]     |
[INFO] [stdout] 603 |         'img: for x in size.x .. (size.x + size.width as usize).min(image.width() as usize) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:604:22
[INFO] [stdout]     |
[INFO] [stdout] 604 |             for y in size.y .. (size.y + size.height as usize).min(image.height() as usize) {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:711:34
[INFO] [stdout]     |
[INFO] [stdout] 711 |                 'frame: for x in 0..frame.width as usize {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:716:30
[INFO] [stdout]     |
[INFO] [stdout] 716 |                     for y in 0..frame.height as usize {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/processing/lexer.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 |         for y in 0..self.height as usize {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/processing/lexer.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |             for x in 0..self.width as isize {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/processing/lexer.rs:61:18
[INFO] [stdout]    |
[INFO] [stdout] 61 |         for y in 0..self.height as u32 {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/processing/lexer.rs:62:22
[INFO] [stdout]    |
[INFO] [stdout] 62 |             for x in 0..self.width as u32 {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |         for y in 0 .. tile.height as usize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:234:22
[INFO] [stdout]     |
[INFO] [stdout] 234 |             for x in 0 .. tile.width as usize {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:254:21
[INFO] [stdout]     |
[INFO] [stdout] 254 |         for tile in 0..16 {
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:255:22
[INFO] [stdout]     |
[INFO] [stdout] 255 |             for y in 0..64 {
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:256:26
[INFO] [stdout]     |
[INFO] [stdout] 256 |                 for x in 0..64 {
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:292:47
[INFO] [stdout]     |
[INFO] [stdout] 292 |             let mut right: Vec<Rgb<u8>> = row[last..]
[INFO] [stdout]     |                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:297:34
[INFO] [stdout]     |
[INFO] [stdout] 297 |             let mut middle = row[first..last].to_vec();
[INFO] [stdout]     |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:423:36
[INFO] [stdout]     |
[INFO] [stdout] 423 |             width: pixels[begin.1][begin.0..]
[INFO] [stdout]     |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:431:44
[INFO] [stdout]     |
[INFO] [stdout] 431 |                 .collect::<Vec<Rgb<u8>>>()[begin.1..]
[INFO] [stdout]     |                                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:443:18
[INFO] [stdout]     |
[INFO] [stdout] 443 |         for i in begin..image.width() as usize * image.height() as usize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:481:18
[INFO] [stdout]     |
[INFO] [stdout] 481 |         for i in begin%image.width() as usize..image.width() as usize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:544:34
[INFO] [stdout]     |
[INFO] [stdout] 544 |                 'frame: for x in 0..frame.width as usize {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:549:30
[INFO] [stdout]     |
[INFO] [stdout] 549 |                     for y in 0..frame.height as usize {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:603:24
[INFO] [stdout]     |
[INFO] [stdout] 603 |         'img: for x in size.x .. (size.x + size.width as usize).min(image.width() as usize) {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:604:22
[INFO] [stdout]     |
[INFO] [stdout] 604 |             for y in size.y .. (size.y + size.height as usize).min(image.height() as usize) {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:711:34
[INFO] [stdout]     |
[INFO] [stdout] 711 |                 'frame: for x in 0..frame.width as usize {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/processing/lexer.rs:716:30
[INFO] [stdout]     |
[INFO] [stdout] 716 |                     for y in 0..frame.height as usize {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GenericImage`
[INFO] [stdout]  --> src/processing/lexer.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::{GenericImage, Rgb, GenericImageView, Pixel};
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GenericImage`
[INFO] [stdout]  --> src/processing/lexer.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::{GenericImage, Rgb, GenericImageView, Pixel};
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/processing/parser.rs:88:36
[INFO] [stdout]    |
[INFO] [stdout] 88 |                 Lexeme::Identifier(id) => {}
[INFO] [stdout]    |                                    ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/processing/parser.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn parse(mut tokens: VecDeque<Lexeme>) -> Result<node::Program, String> {
[INFO] [stdout]    |              ----^^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/processing/parser.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let mut program: node::Program = Default::default();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `program`
[INFO] [stdout]  --> src/processing/codegen.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn generate(program: &parser::node::Program, out: &str) -> io::Result<()> {
[INFO] [stdout]   |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Zero`, `Increment`, `Decrement`, `Repeat`, and `Quote` are never constructed
[INFO] [stdout]   --> src/processing/lexer.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub enum Token {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] 78 |     // constant keys (read from key file)
[INFO] [stdout] 79 |     Zero,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 80 |     Increment,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 81 |     Decrement,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 82 |     Access,
[INFO] [stdout] 83 |     Repeat,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 84 |     Quote,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `eval_lit` and `parse_expr` are never used
[INFO] [stdout]   --> src/processing/parser.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Parser {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 32 |     // used to evaluate integer literal expressions involving increment and decrement
[INFO] [stdout] 33 |     fn eval_lit(&mut self) -> isize {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn parse_expr(&mut self) -> Option<node::Expression> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Loop` is never constructed
[INFO] [stdout]   --> src/processing/parser.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub struct Loop {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Loop` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 29 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/processing/parser.rs:88:36
[INFO] [stdout]    |
[INFO] [stdout] 88 |                 Lexeme::Identifier(id) => {}
[INFO] [stdout]    |                                    ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/processing/parser.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn parse(mut tokens: VecDeque<Lexeme>) -> Result<node::Program, String> {
[INFO] [stdout]    |              ----^^^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/processing/parser.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let mut program: node::Program = Default::default();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `program`
[INFO] [stdout]  --> src/processing/codegen.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn generate(program: &parser::node::Program, out: &str) -> io::Result<()> {
[INFO] [stdout]   |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Zero` is never constructed
[INFO] [stdout]   --> src/processing/lexer.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub enum Token {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] 78 |     // constant keys (read from key file)
[INFO] [stdout] 79 |     Zero,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `eval_lit` and `parse_expr` are never used
[INFO] [stdout]   --> src/processing/parser.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Parser {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 32 |     // used to evaluate integer literal expressions involving increment and decrement
[INFO] [stdout] 33 |     fn eval_lit(&mut self) -> isize {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn parse_expr(&mut self) -> Option<node::Expression> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Loop` is never constructed
[INFO] [stdout]   --> src/processing/parser.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub struct Loop {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Loop` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 29 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.79s
[INFO] running `Command { std: "docker" "inspect" "1760a96cad821ef8797a2e596a4a25bb8c9e1bc3321a5fe362237d72047edc93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1760a96cad821ef8797a2e596a4a25bb8c9e1bc3321a5fe362237d72047edc93", kill_on_drop: false }`
[INFO] [stdout] 1760a96cad821ef8797a2e596a4a25bb8c9e1bc3321a5fe362237d72047edc93
